/*
 * Licensed to the Tai Ping Jin Ke
 *
 * Copyright (c) 2022 .
 * All rights reserved.
 * 项目名称：呼叫中心-系统业务常量管理层
 * 版权说明：本软件属太平金融科技服务(上海)有限公司所有，在未获得太平金融科技服务(上海)有限公司正式授权情况下，任何企业和个人，不能获取、阅读、安装、传播本软件涉及的任何受知识产权保护的内容。
 */
package com.taiping.cc.application.constant.regex;

/**
 * 正则表达式枚举类
 */
public enum RegexExpressRuleEnum {
    PHONE(1, "手机号码", "^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$"),
    TELEPHONE(2, "电话号码", "^(\\(\\d{3,4}-)|\\d{3.4}-)?\\d{7,8}$"),
    MAIL(3, "邮箱", "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$"),
    ID_CARD(4, "身份证号", "^\\d{15}|\\d{18}$"),
    PASSWORD(5, "密码(以字母开头，长度在6~18之间，只能包含字母、数字和下划线)", "^[a-zA-Z]\\w{5,17}$"),
    STRONG_PASSWORD(6, "强密码(必须包含大小写字母和数字的组合，不能使用特殊字符，长度在8-10之间)", "^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$"),
    NUMBER(7, "十进制数字", "^[-+]?\\d+(\\.\\d+)?$");

    /**
     * 正则表达式枚举类构造器
     *
     * @param code    正则表达式的标识
     * @param desc    正则表达式用途的描述
     * @param express 字符串形式的正则表达式
     */
    RegexExpressRuleEnum(int code, String desc, String express) {
        this.code = code;
        this.desc = desc;
        this.express = express;
    }

    /**
     * 正则表达式的标识
     */
    private int code;
    /**
     * 正则表达式用途的描述
     */
    private String desc;
    /**
     * 字符串形式的正则表达式
     */
    private String express;

    public int getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }

    public String getExpress() {
        return express;
    }
}
